﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework;

namespace DynaSpace.Input
{
	/// <summary>
	/// Třída pro bindování virtuálních tlačítek pro jednotlivé hráče na fyzické klávesy
	/// </summary>
	internal static class ControlBinder
	{
		/// <summary>
		/// Vrací klávesu nabindovanou na herní funkci
		/// </summary>
		/// <param name="player">Hráč pro kterého se klávesa hledá</param>
		/// <param name="button">Virtuální tlačítko, kterému se hledá fyzická klávesa</param>
		/// <returns></returns>
		public static Keys GetKey(PlayerIndex player, PlayerButton button)
		{
			// TODO: Dynamické načítání
			switch (player)
			{
				case PlayerIndex.One:
					switch (button)
					{
						case PlayerButton.Left:
							return Keys.Left;
						case PlayerButton.Up:
							return Keys.Up;
						case PlayerButton.Down:
							return Keys.Down;
						case PlayerButton.Right:
							return Keys.Right;
						case PlayerButton.Action:
							return Keys.Enter;
						case PlayerButton.Action2:
							return Keys.RightAlt;
					}
					break;
				case PlayerIndex.Two:
					switch (button)
					{
						case PlayerButton.Left:
							return Keys.A;
						case PlayerButton.Up:
							return Keys.W;
						case PlayerButton.Down:
							return Keys.S;
						case PlayerButton.Right:
							return Keys.D;
						case PlayerButton.Action:
							return Keys.R;
						case PlayerButton.Action2:
							return Keys.Q;
					}
					break;
			}

			return Keys.None;
		}
	}
}
